/*
 * Cliente.h
 *
 *  Created on: 02/11/2013
 *      Author: juliansci
 */

#ifndef CLIENTE_H_
#define CLIENTE_H_
#include <string>
#include <iostream>
#include "Socket.h"
#include "../ui/Canvas.h"
#include "../ui/Ventana.h"
#include "../ui/VentanaAviso.h"
#include "../parser/AreaOtorgada.h"
#include "../parser/ElementoDisponibleJugador.h"

using namespace std;

class Cliente {
private:
	string ip;
	int puerto;
	Socket sock;
	void actualizarEscenario(string mensaje);
	Canvas* canvas;
	Ventana* ventana;
	int idCliente;
	int idElementoActual;
	Elemento* elementoEnMouseCanvas;
	AreaOtorgada *areaJugador;
	list<ElementoDisponibleJugador*>* elementosDisponiblesJugador;
	Sonido sonidoGlobo;

public:

	AreaOtorgada* getAreaJugador(){
		return areaJugador;
	}

	void setAreaJugador(AreaOtorgada* areaJugador) {
		this->areaJugador = areaJugador;
	}

	list<ElementoDisponibleJugador*>* getElementosDisponiblesJugador(){
		return elementosDisponiblesJugador;
	}

	void setElementosDisponiblesJugador(
			list<ElementoDisponibleJugador*>* elementosDisponiblesJugador) {
		this->elementosDisponiblesJugador = elementosDisponiblesJugador;
	}

	Cliente(string ip, int puerto);
	virtual ~Cliente();
	int iniciar();

};

#endif /* CLIENTE_H_ */
